home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Programming / Amos / AMOSP61Ext / source / InitRou.lnk < prev   
Text File  |  1998-06-24  |  2KB  |  65 lines

  1.     AddLabl    L_Init
  2.     cmp.l    #'APex',d1                ;Check for AMOS Pro
  3.     bne.s    .error
  4.     move.l    #O_SizeOf,d0                ;Get extension memory
  5.     move.l    #$10001,d1                ;Cleared memory
  6.     move.l    a6,d5                    ;Save a6
  7.     move.l    4.w,a6
  8.     jsr    _LVOAllocMem(a6)
  9.     move.l    d5,a6                    ;Restore a6
  10.     move.l    d0,ExtAdr+ExtNb*16(a5)            ;Move address to a
  11.     beq.s    .error                    ;available place
  12.     move.l    d0,a2
  13.  
  14.     lea    ResetToDefault(pc),a0            ;Insert 'Default' routine
  15.     move.l    a0,ExtAdr+ExtNb*16+4(a5)
  16.     lea    ExtQuit(pc),a0                ;Insert termination
  17.     move.l    a0,ExtAdr+ExtNb*16+8(a5)
  18.     lea    BkCheck(pc),a0                ;Insert bank check
  19.     move.l    a0,ExtAdr+ExtNb*16+12(a5)
  20.  
  21.     moveq.l    #0,d1
  22.     Rbsr    L_P61Func
  23. ;    bsr    ResetToDefault                ;Default once.
  24.     move.w    #$0110,d1                ;AMOS Pro version needed
  25.     moveq    #ExtNb,d0                ;Extension number
  26.      rts
  27. .error    sub.l    a0,a0                    ;Error has occured.
  28.     moveq.l    #-1,d0
  29.     rts
  30.  
  31. ResetToDefault                        ;Default Routine.
  32. ;    movem.l    a3-a6/d6-d7,-(sp)
  33.     Rbsr    L_P61Stop                ;e.g Protracker Stop
  34. ;    movem.l    (sp)+,a3-a6/d6-d7
  35.     rts
  36.  
  37. ExtQuit
  38.     movem.l    a3-a6/d6-d7,-(sp)
  39.     bsr    ResetToDefault                ;Call the Default Routine
  40.     dload    a2
  41.     move.l    a6,d3
  42.     move.l    4.w,a6
  43.     move.l    a2,a1                    ;Free Extension memory.
  44.     move.l    #O_SizeOf,d0
  45.     jsr    _LVOFreeMem(a6)
  46.     move.l    d3,a6
  47.     movem.l    (sp)+,a3-a6/d6-d7
  48.     rts
  49.  
  50. BkCheck    dload    a2
  51.     tst.w    O_MusicEnabled(a2)
  52.     beq.s    .skip
  53.     move.l    O_MusicBank(a2),d0
  54.     Rjsr    L_Bnk.GetAdr
  55.     beq.s    .ptstop
  56.     move.l    O_MusicAddress(a2),d0
  57.     cmp.l    a0,d0
  58.     beq.s    .skip
  59. .ptstop    movem.l    a3-a6/d6-d7,-(sp)
  60.     Rbsr    L_P61Stop
  61.     movem.l    (sp)+,a3-a6/d6-d7
  62. .skip    rts
  63.  
  64.     AddLabl                        ;Empty label.
  65.